package com.shapawan.tourism.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.shapawan.tourism.entity.AdminUser;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UsernameNotFoundException;

/**
 * 管理员用户服务接口
 */
public interface AdminUserService extends IService<AdminUser> {

    /**
     * 根据用户名获取管理员
     * @param username 用户名
     * @return 管理员对象
     */
    AdminUser getByUsername(String username);
    
    /**
     * 加载用户详情（用于Spring Security认证）
     * @param username 用户名
     * @return 用户详情
     * @throws UsernameNotFoundException 用户未找到异常
     */
    UserDetails loadUserByUsername(String username) throws UsernameNotFoundException;
    
    /**
     * 更新密码
     * @param userId 用户ID
     * @param oldPassword 旧密码
     * @param newPassword 新密码
     * @return 是否更新成功
     */
    boolean updatePassword(Integer userId, String oldPassword, String newPassword);
} 